package com.uniknow.app.util;

import com.uniknow.app.AppContext;

import android.content.Context;
import android.text.TextPaint;
import android.view.View;

/**
 * 类名称：ViewUtil   
 * 类描述：   View 相关工具类
 * @创建者：zhangyao     
 * @创建时间：2014年6月12日
 * @变更记录：2014年6月12日上午9:25:11 by 记录变更人
 */
public class ViewUtil {

	/**
	 * 测量这个view，最后通过getMeasuredWidth()获取宽度和高度.
	 *
	 * @param v 要测量的view
	 * @return 测量过的view
	 */
	public static void measureView(View v){
		if(v == null){
			return;
		}
		int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); 
	    int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
	    v.measure(w, h);
	}
	
	/**
	 * 描述：根据分辨率获得字体大小.
	 *
	 * @param screenWidth the screen width
	 * @param screenHeight the screen height
	 * @param textSize the text size
	 * @return the int
	 */
	public static int resizeTextSize(int screenWidth,int screenHeight,int textSize){
		float ratio =  1;
		try {
			float ratioWidth = (float)screenWidth / 480; 
			float ratioHeight = (float)screenHeight / 800; 
			ratio = Math.min(ratioWidth, ratioHeight); 
		} catch (Exception e) {
		}
		return Math.round(textSize * ratio);
	}
	
	/**
	 * 
	 * 描述：dip转换为px
	 * @param context
	 * @param dipValue
	 * @return
	 * @throws 
	 */
	public static int dip2px(Context context, float dipValue) {
		final float scale = context.getResources().getDisplayMetrics().density;
		return (int) (dipValue * scale + 0.5f);
	}

	/**
	 * 
	 * 描述：px转换为dip
	 * @param context
	 * @param pxValue
	 * @return
	 * @throws 
	 */
	public static int px2dip(Context context, float pxValue) {
		final float scale = context.getResources().getDisplayMetrics().density;
		return (int) (pxValue / scale + 0.5f);
	}
	
	 
    /**
     * 描述：获取文字的像素宽.
     *
     * @param str the str
     * @param paint the paint
     * @return the string width
     */
    public static float getStringWidth(String str,TextPaint paint) {
   	 float strWidth  = paint.measureText(str);
        return strWidth;
    }
    /**
     * 获取屏幕宽度
     * @return
     */
    public static int getScreenWidth(){
    	return AppContext.DM.widthPixels;
    }
    /**
     * 获取屏幕高度
     * @return
     */
    public static int getScreenHeigth(){
    	return AppContext.DM.heightPixels;
    }
	
}

